/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionpistas;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import javax.swing.JOptionPane;
import gestionJDBC.*;


/**
 *
 * @author MiguelAngel
 */
public class PistaBD {
    
    private static gestorJDBC gestor = gestorJDBC.getInstance();
    
    public boolean CrearPista(Pista p){
        //gestorJDBC gestor = new gestorJDBC();
        
        //Obtener el id
        int cant=0;  
        boolean valido;
        
        ResultSet rs2= gestor.Consultar("select count(*) as contador from Pistas");
        
        try {
            rs2.next();
                
            cant =((Number) rs2.getObject("contador")).intValue();
                    
        } catch (SQLException e) {
                    JOptionPane.showMessageDialog(null, "Error al consultar numero de pistas\n"+e.getMessage());

        }
        
        if(cant>0){
            ResultSet rs=gestor.Consultar("SELECT max(Pistas.id_pistas) AS id_pistas FROM Pistas");
            try {
                rs.next();
                cant=(Integer)rs.getObject("id_pistas");
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "Numero de pistas es 0\n"+e.getMessage());
            }	
            cant++;
            //Insertar Datos*/
            valido = gestor.Insertar("INSERT INTO Pistas (id_pistas,nombre, direccion, localidad, alta) VALUES ('"+cant+"','"+p.getnombre()+"','"+p.getdireccion()+"','"+p.getlocalidad()+"','Si')");
            
        }else{
            cant=1;
            //Insertar Datos*/
            valido = gestor.Insertar("INSERT INTO Pistas (id_pistas,nombre, direccion, localidad, alta) VALUES ('"+cant+"','"+p.getnombre()+"','"+p.getdireccion()+"','"+p.getlocalidad()+"','Si')");
           
        }
        return valido;
    }
    
    public boolean darBajaPista(Integer id) {
       
	boolean valido = gestor.Modificar("UPDATE Pistas SET alta='No' WHERE id_pistas='" + id + "'");
        	
        return valido;
    }
       
    public ArrayList<Pista> getPistas(String nombre){
        
        ArrayList<Pista> pistas = new ArrayList<Pista>();
       // gestorJDBC gestor = new gestorJDBC();
	ResultSet rs = null;
        
        rs = gestor.Consultar("select * from Pistas where nombre='"+nombre+"'");
           
	int i = 0; 
        try{
            while(rs.next()){
                if(rs.getObject("alta").toString().equals("Si")){
                    pistas.add(new Pista());
                    pistas.get(i).setid_pistas((Integer) rs.getObject("id_pistas"));
                    pistas.get(i).setnombre(rs.getObject("nombre").toString());
                    pistas.get(i).setdireccion(rs.getObject("direccion").toString());
                    pistas.get(i).setlocalidad(rs.getObject("localidad").toString());
                    pistas.get(i).setalta(rs.getObject("alta").toString());
                    i++;
                }
            }
        }catch(SQLException e ){
            JOptionPane.showMessageDialog(null,"Error al obtener la lista de pistas\n"
							+ e.getMessage());
	}
                        
        return pistas;
    }
    
     public ArrayList<Pista> getTodasPistas(){
        
        ArrayList<Pista> pistas = new ArrayList<Pista>();
       // gestorJDBC gestor = new gestorJDBC();
	ResultSet rs = null;
        
        rs = gestor.Consultar("select * from Pistas");
           
	int i = 0; 
        try{
            while(rs.next()){
                if(rs.getObject("alta").toString().equals("Si")){
                    pistas.add(new Pista());
                    pistas.get(i).setid_pistas((Integer) rs.getObject("id_pistas"));
                    pistas.get(i).setnombre(rs.getObject("nombre").toString());
                    pistas.get(i).setdireccion(rs.getObject("direccion").toString());
                    pistas.get(i).setlocalidad(rs.getObject("localidad").toString());
                    pistas.get(i).setalta(rs.getObject("alta").toString());
                    i++;
                }
            }
        }catch(SQLException e ){
            JOptionPane.showMessageDialog(null,"Error al obtener la lista de pistas\n"
							+ e.getMessage());
	}
                        
        return pistas;
    }
        
}
